
package com.sdhs.common.utils.mqtt.constant;

/**
 * OAuth 常量
 *@author
 */
public interface MqttMessageConstant {

	String CHARSET_UTF_8 = "utf-8";

	String TOPIC_USER_WHO = "USER/";
	/**
	 * 私密消息 用户消息 ACL控制权限
	 */
	String TOPIC_USER_PATH = "USER/USERNAME/";

	/**
	 * 私密消息 TOKEN消息 ACL控制权限
	 */
	String TOPIC_TOKEN_PATH = "USER/TOKEN/";
	/**
	 * 所有用户消息路径
	 */
	String TOPIC_USER_ALL_PATH = "USER/ALL/";

	/**
	 * 用户群组消息消息路径
	 */
	String TOPIC_USER_GROUP_PATH = "USER/GROUP/";


	/**
	 * 用户机构消息
	 */
	String TOPIC_USER_DEPT_PATH = "USER/DEPT/";

	/**
	 * 应用消息
	 */
	String TOPIC_APP_PATH = "APPLICATION/";

	/**
	 * 公开消息
	 */
	String TOPIC_PUBLIC_PATH = "PUBLIC/";

	/**
	 * 系统消息
	 */
	String TOPIC_SYSTEM_PATH = "SYSTEM/";

	/**
	 * 订阅
	 */
	String  TOPIC_SUBSCRIBE = "1";
	/**
	 * 发布
	 */
	String  TOPIC_PUBLISH = "2";

	/**
	 * 发布订阅全部
	 */
	String  TOPIC_SUB_AND_PUB = "3";
    /**
	 * 消息类型  0文本 1 图片  2声音  3视频 4音乐 5任务 6链接  9 其他消息(自定义消息)
	 */
	enum MessageTypes {
		/**
		 * 0文本
		 */
		TEXT("0"),
		/**
		 * 图片
		 */
		IMAGE("1"),

		/**
		 * 音频
		 */
		AUDIO("2"),

		/**
		 * 视频
		 */
		VIDEO("3"),

		/**
		 * 任务
		 */
		TASK("5"),
		/**
		 * 连接
		 */
		LINK("6"),

		/**
		 * 业务消息
		 */
		BUSINESS("7"),
		/**
		 * 其他
		 */
		OTHER("9");

		private String value;

		MessageTypes(String value) {
			this.value = value;
		}

		public String getValue() {
			return value;
		}
	}

	/**
	 * 目的用户类型 ALL 所有人 LONGIN 当前用户
	 * USER指定用户  逗号,表示多用户
	 * TOKEN  指定token  逗号,表示token
	 * ROLE 用户角色  逗号,表示多角色
	 * BUSINESS_ROLE  用户业务角色 逗号,表示多角色
	 * GROUP 群组
	 */
	public class ToTypes {
		/**
		 * ALL 所有人
		 */
		public static String ALL= "ALL";

		/**
		 * APP_ID
		 */
		public static String  APPLICATION="APPLICATION";
		/**
		 * LONGIN 当前登录用户
		 */
		public static String LONGIN="LONGIN";

		/**
		 * 用户
		 */
		public static String USER = "USER";

		/**
		 * TOKENT
		 */
		public static String  TOKEN="TOKEN";

		/**
		 * 角色
		 */
		public static String ROLE="ROLE";
		/**
		 * 业务角色
		 */
		public static String BUSINESS_ROLE="BUSINESS_ROLE";

		/**
		 * 群组
		 */
		public static String GROUP="GROUP";

	}
}
